package com.fzkj.project.entiy;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fzkj.common.annotation.Excel;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 实践任务对象 practice_task
 *
 * @author zhangmx
 * @date 2024-11-12
 */
@Data
public class PracticeTask {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 任务名称
     */
    @Excel(name = "任务名称")
    private String taskName;

    /**
     * 任务要求
     */
    @Excel(name = "任务要求")
    private String taskRequire;

    /**
     * 注意事项
     */
    @Excel(name = "注意事项")
    private String mattersNeedAttention;

    /**
     * 实践类型：1.劳动教育；2.职业素养；3.应急安全教育；4.思政实践教育；5.创新创业教育
     */
    @Excel(name = "实践类型：1.劳动教育；2.职业素养；3.应急安全教育；4.思政实践教育；5.创新创业教育")
    private Integer practiceType;

    /**
     * 任务次数
     */
    @Excel(name = "任务次数")
    private Long taskNumber;

    /**
     * 积分上线
     */
    @Excel(name = "积分上线")
    private Long pointsCap;

    /**
     * 面向年级
     */
    @Excel(name = "面向年级")
    private String faceNj;

    /**
     * 面向学院
     */
    @Excel(name = "面向学院")
    private Long faceXy;

    /**
     * 面向专业
     */
    @Excel(name = "面向专业")
    private Long faceZy;

    /**
     * 面向班级
     */
    @Excel(name = "面向班级")
    private Long faceBj;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 附件地址
     */
    @Excel(name = "附件地址")
    private String attachmentUrl;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("taskName", getTaskName())
                .append("taskRequire", getTaskRequire())
                .append("mattersNeedAttention", getMattersNeedAttention())
                .append("practiceType", getPracticeType())
                .append("taskNumber", getTaskNumber())
                .append("pointsCap", getPointsCap())
                .append("faceNj", getFaceNj())
                .append("faceXy", getFaceXy())
                .append("faceZy", getFaceZy())
                .append("faceBj", getFaceBj())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("attachmentUrl", getAttachmentUrl())
                .toString();
    }
}
